<?php	
	/*
	echo __DIR__;echo '<hr/>';
	echo __FILE__;echo '<hr/>';
	echo __LINE__;echo '<hr/>';
	*/
	
	
	/*
	$a = 'abc1.1.1';
	$b = '1.1.1.abc';
	
	echo $a + $b; //自动转化
	echo '<hr/>',(float)$a,'<br/>',(float)$b;
	*/
	
	/*
	$a = 'abc1.1.1';
	$b = '1.1.1.abc';
	var_dump(is_int($a)); #bool(false) 
	var_dump(is_string($b));#bool(true)
	*/
	
	/*
	$a = 'abc1.1.1';
	$b = '1.1.1.abc';
	echo gettype($a); #string
	
	var_dump(settype($b,'int')); #bool(true)
	echo gettype($b); #integar
	
	*/
	
	
	/*
	$a1 = 120;		//10进制
	$a2 = 0b110;	    //2进制
	$a3 = 0120;		//8进制
	$a4 = 0x120;	    //16进制
	echo $a1,'<hr/>', $a2,'<hr/>', $a3,'<hr/>', $a4,'<hr/>';
	
	*/
	
	/*
	$f1 = 1.23;
	$f2 = 1.23e10;
	var_dump($f1,$f2); #float(1.23)  float(12300000000)
	*/
	
	/*
	$f1 = 0.7;
	$f2 = 2.1 / 3;
	var_dump($f1 == $f2); #bool(false)
	*/
	
	
	/*
	$a;
	var_dump(isset($a)); //bool(false)
	var_dump(empty($a)); //bool(true)
	
	$x = NULL;
	var_dump(isset($x)); //bool(false)
	var_dump(empty($x)); //bool(true)
	*/
	
	/*
	$a = 123; //整形
	$b = '123';//字符串
	var_dump($a == $b);  #bool(true) 
	var_dump($a === $b); #bool(false)
	
	*/
	
	/*
	$a = 'hello';
	$b = 'Mango';
	echo $a.$b; #helloMango
	
	echo '<hr/>';
	$a .= $b;
	echo $a; #helloMango
	*/
	
	/*
	$a = 10;
	$b = 0;
	@($a / $b); //如果没有错误抑制：报错Warning: Division by zero in D:\apache\htdocs\index.php on line 86

	*/
	/*
	$a = 0;
	$b = 0;
	echo $a++,'<br/>',++$b; // 0 1 
	echo '<br/>',$a,'<br/>',$b;// 1 1
	*/
	
	/*
	$a = 10;
	$b = 5;
	$a -= $b-1; //==>$a = $a - ($b-1)
	echo $a;//6
	*/

	// for($i = 0;$i <= 10;$i++)
	// 	echo " ".$i;

	// display(20); //20hello Mango

	// function display($val)
	// {
	// 	echo $val;
	// 	echo "hello Mango";
	// }

	// $a = 1;
	// $b = 1;

	// function display()
	// {
	// 	echo "hello world";
	// }
	// var_dump(display()); //NULL

	// // AddMyself($a,$b);
	// // echo $a,'<br/>',$b; // 1   2

	//默认的代码空间就是全局空间
	//最终glo会被纳入到超全局变量当中 ==>$GLOBALS['glo'] = 'global area'
	// $glo = 'global area'; 


	// function func()
	// {
	// 	echo $GLOBALS['glo'];
	// }
	// func(); //global area
	// echo '<hr/>';
	// echo $glo; //global area

	// $global = 'global area'; 
	// function func()
	// {
	// 	//外部存在同名的global变量
	// 	//函数内部定义的变量直接指向外部全局变量所指向的内存空间
	// 	global $global; 
	// 	echo $global;

	// 	//定义全局不存在变量
	// 	global $local;
	// 	$local = 'inner func';
	// }
	// func(); //global area
	// echo '<hr/>';
	// echo $local;//访问"局部"变量  inner func




	// define('PI', 3.14);

	// function func()
	// {
	// 	echo PI;
	// }
	// func(); //3.14
	// echo PI;//3.14
	

	// function func()
	// {
	// 	$local = 0;
	// 	static $count = 0;
	// 	$count++;
	// 	$local++;

	// 	echo $local," ",$count;
	// }
	// func(); echo '<hr/>';//1 1
	// func(); echo '<hr/>';//1 2
	// func(); echo '<hr/>';//1 3


	// $func = 'display';
	// function display()
	// {
	// 	echo "hell I am function display()" ;
	// }
	// $func();//hell I am function display()


	// //假设是系统函数 -求第二个参数的4次方
	// function sys_func($arg1,$arg2)
	// {
	// 	return $arg1($arg2);//user_func($agr2)
	// }
	// function user_func($num)
	// {
	// 	return pow($num,4);
	// }
	// echo sys_func('user_func',10);//求10^4  ==> 10000


	// $func = function(){
	// 	echo "hello world";
	// };
	// $func();
	// var_dump($func);//object(Closure)#1 (0) { }

	// function func()
	// {
	// 	$name = "HELLO WORLD";

	// 	//定义匿名函数string(1) "2"
	// 	//use就是将外部局部变量保留给内部使用
	// 	$innerFunction = function() use($name)
	// 	{
	// 		echo $name;
	// 	}; //注意分号！
	// 	return $innerFunction;//返回内部匿名函数
	// }
	// $get = func(); //$get = $innerFunction
	// $get();//HELLO WORLD

	// echo time(),'<br/>';
	// echo microtime(),'<br/>';
	// echo strtotime('tomorrow 10 hours');

	// function testFunc($a,$b)
	// {
	// 	//获取指定参数 --获取第一个参数
	// 	var_dump(func_get_arg(1));

	// 	//获取所有参数
	// 	var_dump(func_get_args());

	// 	//获取参数数量
	// 	var_dump(func_num_args());
	// }
	// echo '<pre>';
	// //短路运算,该函数存在才调用
	// function_exists('testFunc') && testFunc(1,'2',3.14);
	


	// $a = 10;
	// $b = 0;
	// if($b == 0)
	// {
	// 	trigger_error('被除数不能为0',E_USER_ERROR);
	// }

	//heredoc结构
// 	$str3 = <<<EOD
// 		hello
// 			world
// EOD;
// 	//nowdoc结构
// 	$str4 = <<<'EOD'
// 		hello
// 			world
// EOD;
// 	var_dump($str3,$str4);

	// $str1 = 'abc\r\ndef\t\'\"\$fg';
	// $str2 = "abc\r\ndef\t\'\"\$fg";
	// var_dump($str1,$str2);
	// $a = 'hello';

	// //变量识别：
	// $str1 = 'abcd {$a} dfg';
	// $str2 = "abcd {$a} dfg";
	// var_dump($str1,$str2);

// 	$str1 = 'abcde';
// 	$str2 = '你好中国';
// 	echo strlen($str1)," ",strlen($str2); // 5 12 
//
	// $str = ' abcd e f';
	// echo substr($str,1,3),"<br/>"; //abc
	// echo strstr($str,'c');//cd e f


	// $age = 10;
	// printf("hello I am Mango,My age:%d",$age);
	// echo sprintf("hello I am Mango,My age:%d\n",$age);
	// $arr =['1',2,'hello',3.14];
	// var_dump($arr);


	// $arr[] = 1;
	// $arr[10] = 'ten';
	// $arr[] = 'what number';
	// $arr['key'] = 'value';
	// var_dump($arr);

	// $arr[false] = false;
	// $arr[true] = true;
	// $arr[NULL] = NULL;
	// var_dump($arr);

	// $info = array(
	// 	array('name' => 'Mango','age' => 20),
	// 	array('name' => 'Lemon','age' => 10),
	// 	array('orange' => '','age' => 30),
	// );
	// echo '<pre>';
	// var_dump($info);
	// $arr = array(0=>array('name' => 'Tom'), 1=>array('name' => 'Jim'));	//二维数组
	// //访问一维元素：$arr[一维下标]
	// $arr[0];	//结果：array(‘name’ => ‘Tom’);

	// //访问二维元素：$arr[一维下标][二维下标
	// $arr[1]['name'];	//Jim


	// $arr = array(1,2,3,4,5,6,7,8,9,10);
	// foreach($arr as $key => $val)
	// {
	// 	echo 'key:',$key,'====value:',$val,'<br/>';
	// }
	// key:0====value:1
	// key:1====value:2
	// key:2====value:3
	// key:3====value:4
	// key:4====value:5
	// key:5====value:6
	// key:6====value:7
	// key:7====value:8
	// key:8====value:9
	// key:9====value:10

	// $arr = array(1,2,3,4,5,6,7);
	// for($i = 0,$len = count($arr);$i < $len ;$i++)
	// {
	// 	printf("key:%d   val:%d",$i,$arr[$i]);
	// 	echo '<pre>';
	// }

	// $arr = array(3,1,5,2,0);
	// echo next($arr)," ",next($arr),'<br/>'; //1 5 
	// echo prev($arr),'<br/>';//1
	// echo current($arr),'<br/>';//1
	// echo key($arr),'<br/>';//下标：1

	//处理脚本让浏览器按照指定字符集解析的方法
	header('Content-type:text/html;charset=utf-8');
	$arr = array(5,2,3,4,6,7);
	//求第n个斐波那契数
	// 1 1 2 3 5 8 13...
	function Fib_recursion($n)
	{
		if($n == 1 || $n == 2)
			return 1;
		else 
			return Fib($n-1) + Fib($n-2);
	}

	function Fib_cycle($n)
	{
		 $f1 = 1;
		 $f2 = 1;
		 $f3 = 0;
		 for($i = 3;$i<=$n;$i++)
		 {
			$f3 = $f2 + $f1;
			$f1 = $f2;
			$f2 = $f3;
		 }
		 return $f2;
		 
	}
	$a = false;
	var_dump($a);
 ?>	
